package com.shujia.wyh.day22.ketang;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
        处理一个异常和处理多个异常
        处理多个异常的方案：
            1、对每一个异常都写一个try...catch...
            2、写一个try，多个catch
                try{
                    ...
                }catch(){
                    ...
                }catch(){
                    ...
                }
        注意事项：
            1、多个异常使用try..catch处理的时候，catch可以写一个，里面写最大的父类Exception,但是如果这么写了，try里面
                无论出现什么错误，都会匹配到这里的catch，这样的做的话，所有的问题处理方式都是一种处理，没法区分，不推荐这么做
            2、多个catch之间可以是继承关系，但是，要把父类的catch写在最后，因为出现问题匹配catch的顺序是自上而下的。
            3、JDK1.7之后出现了处理异常的新方案：
                try{
                    放上可能会出现问题的代码;
                }catch(异常类名1|异常类名2|异常类名3|... 变量名){
                    处理问题的代码;
                }
              注意：
                1）新特性处理的方式并不太好，因为多种异常的处理方式统一是一种
                2）新特性的处理catch中的异常只能是平级关系，不能是继承关系

 */
public class ExceptionDemo3 {
    public static void main(String[] args) {
        //编译时期异常
        String s = "2022-04-06 14:35:00";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        try {
//            Date date = sdf.parse(s);
//            System.out.println(date);
//        }catch (ParseException pe){
//            System.out.println("日期转换出错了！！！");
//        }
//
//        int[] arr = {11,22,33,44,55};
//        try {
//            System.out.println(arr[5]);
//        }catch (ArrayIndexOutOfBoundsException aiob){
//            System.out.println("取了不该取的索引");
//        }
        System.out.println("===============================================");
        //第二种处理方式：写一个try，多个catch

//        try {
//            Date date = sdf.parse(s);
//            int[] arr = {11, 22, 33, 44, 55};
//            System.out.println(arr[5]);
//        }catch (ParseException ae){
//            System.out.println("日期处理格式");
//        }catch (Exception ae){
//            System.out.println("取了不该取的索引");
//        }
        System.out.println("===============================================");
        //JDK1.7try..catch处理新方式
        try {
            Date date = sdf.parse(s);
            int[] arr = {11, 22, 33, 44, 55};
            System.out.println(arr[5]);
        }catch (ParseException|ArrayIndexOutOfBoundsException e){
            System.out.println("出错啦！！");
        }



        System.out.println("你好！！！");


    }
}
